namespace OasisCiq.Xal
{
    using System.Collections.Generic;
    using System.Collections.Specialized;
    using CommonTypes;
    using External;
    using XS;

    /// <summary>
    /// Details of the top-level area division in the country, such as state, district,
    /// province, island, region, etc. Note that some countries do not have this
    /// </summary>
    public class AdministrativeArea : IDataQualityGroup, IExtendedAttributes
    {
        /// <summary>
        /// at least one element required
        /// </summary>
        public virtual ICollection<AdministrativeAreaNameElement> NameElements { get; set; }

        public virtual SubAdministrativeArea SubAdministrativeArea { get; set; }

        /// <summary>
        /// Type of administrative area. e.g. state, city, town, etc
        /// </summary>
        public virtual AdministrativeAreaTypeList Type { get; set; }

        public virtual DataQualityTypeList DataQualityType { get; set; }

        public virtual XSDateTime ValidFrom { get; set; }

        public virtual XSDateTime ValidTo { get; set; }

        public virtual NameValueCollection ExtendedAttributes { get; set; }
    }
}